package com.yy.poly_.polyparameter_;

/**
 * chapter08  com.yy.poly_.polyparameter_
 * 2023-04-22 12:22
 *
 * @author yy yuyue
 * description : 不可描述
 * @date 2023/4/22 12:22
 */
public class PolyParameter {
    public static void main(String[] args) {
        Worker wyb = new Worker("wyb",2500);
        Manager cxk = new Manager("cxk",5000,20000);//名字是字符串,要加上双引号
        PolyParameter polyParameter = new PolyParameter();
        polyParameter.showEmpAnnual(wyb);
        polyParameter.showEmpAnnual(cxk);
        System.out.println("======");
        polyParameter.testWork(wyb);
        polyParameter.testWork(cxk);


    }
   // showEmpAnnual(Employee e)
 //实现获取任何员工对象的年工资, 并且在main方法中调用该方法 [e.getAnnual()]

    public void showEmpAnnual(Employee e) {//传参的过程已经向上转型了
        System.out.println(e.getAnnual()); //动态绑定机制

    }

    //添加一个方法, testWork, 如果是普通员工, 则调用work方法, 如果是经理, 则调用manage方法
    //向下转型
    public void testWork(Employee e){
        if(e instanceof Worker){
            ((Worker)e).work();


        } else if (e instanceof Manager) {
            ((Manager)e).manage();
            //\\这里返回的是字符串,所以要有输出语句!!

        } else if (e instanceof Employee) {
            //....

        }else {
            System.out.println("你的类型有误,请重新输入");

        }
    }
}
